using System;

namespace Picnic.Spec.Console
{
	/// <summary>
	/// Describes interface of console.
	/// </summary>
	public interface IConsole
	{
		/// <summary>
		/// Gets a console width.
		/// </summary>
		int Width { get; }

		/// <summary>
		/// Gets a console hight.
		/// </summary>
		int Height { get; }

		/// <summary>
		/// Sets console color.
		/// </summary>
		void SetColor(ConsoleColor color);

		/// <summary>
		/// Undo console color changed by <see cref="SetColor"/> command.
		/// </summary>
		void UndoColor();

		/// <summary>
		/// Writes empty line.
		/// </summary>
		void WriteLine();

		/// <summary>
		/// Writes message.
		/// </summary>
		void WriteLine(string message);

		/// <summary>
		/// Writes message with specified padding.
		/// </summary>
		void WriteLine(string message, int padding);
	}
}